// 版权所有2017 etcd作者
// 
// 根据Apache许可证2.0版（以下简称“许可证”）获得许可；
// 除非遵守许可证，否则不得使用此文件。
// 您可以通过
// 
// www.apache.org/licenses/LICENSE-2.0 
// 
// 除非适用法律要求或书面同意，否则根据许可证分发的软件
// 按“原样”分发，
// 无任何明示或暗示的保证或条件。
// 请参阅许可证，了解管理许可的特定语言和
// 许可证下的限制。

// 包命名提供：
// -子包端点：用于存储和读取端点的抽象层
// 来自etcd的信息。
// -子包解析程序：一个基于etcd的gRPC解析程序，用于发现gRPC 
// 基于端点配置的服务
// 
// 要使用，首先导入包：
// 
// 导入（
// “go.etcd.io/etcd/client/v3”
// “go.etcd.io/etcd/client/v3/naming/resolver”
// “google.golang.org/grpc”
// ）
// 
// 首先，为服务注册新的端点地址：
// 
// func etcdAdd（c*clientv3.Client，service，addr string）错误{
// em:=endpoints.NewManager（c，service）
// /返回em.AddEndpoint（c.Ctx（），service+“/”+addr，endpoints.endpoints{addr:addr}）；
// 
// 
// 使用etcd gRPC解析器和gRPC平衡器拨打RPC服务：
// 
// func etcdDial（c*clientv3.Client，service string）（*gRPC.ClientConn，error）{
// etcdResolver，err:=resolver.NewBuilder（c）；
// 如果err{返回nil，err}
// 返回grpc.Dial（“etcd:
// }
// /
// 或者强制删除一个端点：
// 
// func-etcdDelete（c*clientv3，service，addr string）错误{
// 返回em.DeleteEndpoint（c.Ctx（），service+“/”+addr）
// /}（c，service）
// 返回em.AddEndpoint（c.Ctx（），service+“/”+addr，endpoints.Endpoint{addr:addr}，clientv3.WithLease（lid））；
// /}
// 
package naming
